package main
import(
	"fmt"
	"github.com/garyburd/redigo/redis"
)
//定义一个全局的pool
var pool *redis.Pool

//当启动程序时就初始化这个连接池
//主函数main()执行之前执行
func init(){
	pool = &redis.Pool{
		MaxIdle:8,//最大空闲连接数
		MaxActive:0,//表示和数据库的最大连接数
		IdleTimeout:100,//最大空闲时间
		Dial:func() (redis.Conn,error){//初始化连接的代码
			return redis.Dial("tcp","127.0.0.1:6379")
		},
	}
}

func main(){
	//先从pool取出一个连接
	conn := pool.Get()
	defer conn.Close()
	//存入
	_,err :=  conn.Do("set","name","tomcat")
	if err != nil{
		fmt.Println("set error",err)
		return
	}
	//取出
	res,err := redis.String(conn.Do("get","name"))
	if err != nil{
		fmt.Println("set error",err)
		return
	}
	fmt.Println("res = ",res)

	//如果我们要从pool取出连接，一定要保证连接池没有关闭 否则会出现操作错误
	pool.Close()
}
